home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #2 / Monster Media No. 2 (Monster Media)(1994).ISO / pcboard / bcmx120.zip / NUV.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-07-11  |  26KB  |  1,646 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Boolean  BOOLEAN006
  25.     Boolean  BOOLEAN007
  26.     Boolean  BOOLEAN008
  27.     Boolean  BOOLEAN009
  28.     Boolean  BOOLEAN010
  29.     Boolean  BOOLEAN011
  30.     Boolean  BOOLEAN012
  31.     Boolean  BOOLEAN013
  32.     Boolean  BOOLEAN014
  33.     Boolean  BOOLEAN015
  34.     Boolean  BOOLEAN016
  35.     Boolean  BOOLEAN017
  36.     Integer  TINTEGER002(7)
  37.     Integer  TINTEGER003(7)
  38.     Integer  INTEGER004
  39.     Integer  INTEGER005
  40.     Integer  INTEGER006
  41.     Integer  INTEGER007
  42.     Integer  INTEGER008
  43.     Integer  INTEGER009
  44.     Integer  INTEGER010
  45.     Integer  INTEGER011
  46.     Integer  INTEGER012
  47.     Integer  INTEGER013
  48.     Integer  INTEGER014
  49.     Integer  INTEGER015
  50.     Integer  INTEGER016
  51.     Integer  INTEGER017
  52.     Integer  INTEGER018
  53.     Integer  INTEGER019
  54.     Integer  INTEGER020
  55.     Integer  INTEGER021
  56.     Integer  INTEGER022
  57.     Integer  INTEGER023
  58.     Integer  INTEGER024
  59.     Integer  INTEGER025
  60.     Integer  INTEGER026
  61.     Integer  INTEGER027
  62.     Integer  INTEGER028
  63.     Integer  INTEGER029
  64.     Integer  INTEGER030
  65.     Integer  INTEGER031
  66.     Integer  INTEGER032
  67.     Integer  INTEGER033
  68.     Integer  INTEGER034
  69.     Integer  INTEGER035
  70.     Integer  INTEGER036
  71.     Integer  INTEGER037
  72.     Integer  INTEGER038
  73.     Integer  INTEGER039
  74.     Integer  INTEGER040
  75.     Integer  INTEGER041
  76.     Integer  INTEGER042
  77.     Integer  INTEGER043
  78.     Integer  INTEGER044
  79.     Integer  INTEGER045
  80.     Integer  INTEGER046
  81.     Integer  INTEGER047
  82.     Integer  INTEGER048
  83.     Integer  INTEGER049
  84.     Integer  INTEGER050
  85.     Integer  INTEGER051
  86.     Integer  INTEGER052
  87.     Integer  INTEGER053
  88.     Integer  INTEGER054
  89.     Integer  INTEGER055
  90.     Integer  INTEGER056
  91.     Integer  INTEGER057
  92.     Integer  INTEGER058
  93.     Integer  INTEGER059
  94.     Integer  INTEGER060
  95.     Integer  INTEGER061
  96.     Integer  INTEGER062
  97.     Integer  INTEGER063
  98.     Integer  INTEGER064
  99.     Integer  INTEGER065
  100.     String   TSTRING001(7)
  101.     String   STRING002
  102.     String   STRING003
  103.     String   STRING004
  104.     String   STRING005
  105.     String   STRING006
  106.     String   STRING007
  107.     String   TSTRING008(1)
  108.     String   TSTRING009(7)
  109.     String   STRING010
  110.     String   STRING011
  111.     String   STRING012
  112.     String   STRING013
  113.     String   STRING014
  114.     String   STRING015
  115.     String   STRING016
  116.     String   STRING017
  117.     String   STRING018
  118.     String   STRING019
  119.     String   STRING020
  120.     String   STRING021
  121.     String   STRING022
  122.     String   STRING023
  123.     String   STRING024
  124.     String   STRING025
  125.     String   STRING026
  126.     String   STRING027
  127.     String   STRING028
  128.     String   STRING029
  129.     String   STRING030
  130.     String   STRING031
  131.     String   STRING032
  132.     String   STRING033
  133.     String   STRING034
  134.     String   STRING035
  135.     String   STRING036
  136.     String   STRING037
  137.     String   STRING038
  138.     String   STRING039
  139.     String   STRING040
  140.     String   STRING041
  141.     String   STRING042
  142.     String   STRING043
  143.     String   STRING044
  144.     String   STRING045
  145.     String   STRING046
  146.     String   STRING047
  147.     String   STRING048
  148.     String   STRING049
  149.     String   STRING050
  150.     String   STRING051
  151.     String   STRING052
  152.     String   STRING053
  153.     String   STRING054
  154.     String   STRING055
  155.     String   STRING056
  156.     String   STRING057
  157.     String   STRING058
  158.  
  159. ;------------------------------------------------------------------------------
  160.  
  161.     INTEGER005 = 7
  162.     If (TokCount() <> 0) Then
  163.         STRING010 = GetToken()
  164.     Endif
  165.     BOOLEAN006 = 1
  166.     BOOLEAN007 = 0
  167.     STRING043 = Lower(YesChar()) + Upper(YesChar()) + Lower(NoChar()) + Upper(NoChar()) + "Aa"
  168.     BOOLEAN015 = 0
  169.     BOOLEAN002 = 0
  170.     STRING011 = PPEPath() + "\graph\nuvtext"
  171.     If (LangExt() <> "") Then
  172.         If (BOOLEAN002) Then
  173.             PrintLn "Langext = " + LangExt()
  174.             Wait
  175.         Endif
  176.         If (Exist(STRING011 + LangExt())) STRING011 = STRING011 + LangExt()
  177.     Endif
  178.     STRING026 = PPEPath() + "\work\mxlog." + String(PcbNode())
  179.     STRING027 = PPEPath() + "\work\nuvtmp." + String(PcbNode())
  180.     STRING012 = PPEPath() + "nuv.cfg"
  181.     STRING042 = PPEPath() + "infoform.cfg"
  182.     Tokenize ReadLine(STRING042, 1)
  183.     INTEGER038 = GetToken()
  184.     STRING035 = PPEPath() + "apps\waiting.nuv"
  185.     STRING036 = PPEPath() + "apps\waiting.cnt"
  186.     Tokenize ReadLine(STRING012, 1)
  187.     If (GetToken() == "YES") Then
  188.         BOOLEAN009 = 1
  189.     Else
  190.         BOOLEAN009 = 0
  191.     Endif
  192.     If (GetToken() == "YES") Then
  193.         BOOLEAN011 = 1
  194.     Else
  195.         BOOLEAN011 = 0
  196.     Endif
  197.     If (GetToken() == "YES") Then
  198.         BOOLEAN010 = 1
  199.     Else
  200.         BOOLEAN010 = 0
  201.     Endif
  202.     If (GetToken() == "YES") Then
  203.         BOOLEAN012 = 1
  204.     Else
  205.         BOOLEAN012 = 0
  206.     Endif
  207.     If (Upper(ReadLine(STRING012, 2)) == "YES") Then
  208.         BOOLEAN013 = 1
  209.     Else
  210.         BOOLEAN013 = 0
  211.     Endif
  212.     If (Upper(ReadLine(STRING012, 3)) == "YES") Then
  213.         BOOLEAN008 = 1
  214.     Else
  215.         BOOLEAN008 = 0
  216.     Endif
  217.     If (LoggedOn()) Then
  218.         GetUser
  219.         STRING016 = U_Name()
  220.         If (BOOLEAN013) Log "Nuv started for user (" + Upper(STRING016) + ") at " + String(Time()) , 0
  221.     Else
  222.         If (BOOLEAN013) Log "User not logged on, could not execute nuv", 0
  223.         PrintLn "ERROR You're not logged on and therefore cannot use the nuv ppe"
  224.         End
  225.     Endif
  226.     BOOLEAN016 = 0
  227.     BOOLEAN017 = 0
  228.     INTEGER035 = ReadLine(STRING012, 4)
  229.     INTEGER036 = ReadLine(STRING012, 5)
  230.     INTEGER060 = ReadLine(STRING012, 6)
  231.     INTEGER013 = ReadLine(PCBDat(), 149)
  232.     INTEGER014 = ReadLine(STRING012, 7)
  233.     INTEGER037 = ReadLine(STRING012, 8)
  234.     PrintLn ReadLine(STRING011, 8)
  235.     If (U_Sec == INTEGER013) Then
  236.         If (BOOLEAN013) Log "Security equals new user security (" + String(INTEGER013) + "), adding for validation", 0
  237.         Gosub LABEL050
  238.         STRING039 = PPEPath() + "apps\" + Replace(Left(U_Name(), 8), " ", "_")
  239.         STRING039 = Replace(STRING039, "=", "-")
  240.         STRING039 = Replace(STRING039, ",", "-")
  241.         STRING039 = Replace(STRING039, ".", "-") + ".vot"
  242.         If (Exist(STRING035)) Then
  243.             BOOLEAN003 = 0
  244.             INTEGER026 = 1
  245.             STRING022 = ReadLine(STRING035, INTEGER026)
  246.             While (STRING022 <> "") Do
  247.                 If (Upper(STRING022) == Upper(STRING016)) Then
  248.                     BOOLEAN003 = 1
  249.                     Break
  250.                 Endif
  251.                 Inc INTEGER026
  252.                 Inc INTEGER026
  253.                 STRING022 = ReadLine(STRING035, INTEGER026)
  254.             EndWhile
  255.             If (BOOLEAN003) Goto LABEL002
  256.             FClose -1
  257.             FAppend 1, STRING035, 1, 3
  258.             FPutLn 1, STRING016
  259.             FPutLn 1, U_City
  260.             FClose 1
  261.             INTEGER041 = ReadLine(STRING036, 1)
  262.             Inc INTEGER041
  263.             FClose -1
  264.             FCreate 1, STRING036, 1, 3
  265.             FPutLn 1, String(INTEGER041)
  266.             FClose 1
  267.             If (Exist(STRING039)) Goto LABEL001
  268.             FCreate 1, STRING039, 1, 3
  269.             FPutLn 1, "00000"
  270.             FPutLn 1, "00000"
  271.             FClose 1
  272.             :LABEL001
  273.             Goto LABEL003
  274.             :LABEL002
  275.             If (Exist(STRING039)) Then
  276.                 INTEGER061 = ReadLine(STRING039, 1)
  277.                 INTEGER062 = ReadLine(STRING039, 2)
  278.             Endif
  279.             STRING039 = PPEPath() + "graph\nuvstat"
  280.             INTEGER063 = 1
  281.             FreshLine
  282.             STRING033 = ReadLine(STRING039, INTEGER063)
  283.             If (INTEGER036 == 0) Then
  284.                 STRING049 = ReadLine(STRING011, 26)
  285.             Else
  286.                 STRING049 = String(INTEGER036)
  287.             Endif
  288.             If (INTEGER035 == 0) Then
  289.                 STRING048 = ReadLine(STRING011, 26)
  290.             Else
  291.                 STRING048 = String(INTEGER035)
  292.             Endif
  293.             While (STRING033 <> "") Do
  294.                 STRING033 = ReplaceStr(STRING033, "%YES%", String(INTEGER061))
  295.                 STRING033 = ReplaceStr(STRING033, "%NO%", String(INTEGER062))
  296.                 STRING033 = ReplaceStr(STRING033, "%NON%", STRING049)
  297.                 STRING033 = ReplaceStr(STRING033, "%YESN%", STRING048)
  298.                 PrintLn STRING033
  299.                 Inc INTEGER063
  300.                 STRING033 = ReadLine(STRING039, INTEGER063)
  301.             EndWhile
  302.             Wait
  303.             If (BOOLEAN008) Then
  304.                 Hangup
  305.             Else
  306.                 End
  307.             Endif
  308.             :LABEL003
  309.         Else
  310.             FClose -1
  311.             FCreate 1, STRING035, 1, 3
  312.             FPutLn 1, STRING016
  313.             FPutLn 1, U_City
  314.             FClose 1
  315.             FCreate 1, STRING036, 1, 3
  316.             FPutLn 1, "1"
  317.             FClose 1
  318.             If (Exist(STRING039)) Goto LABEL004
  319.             FCreate 1, STRING039, 1, 3
  320.             FPutLn 1, "00000"
  321.             FPutLn 1, "00000"
  322.             FClose 1
  323.         Endif
  324.         :LABEL004
  325.         If (BOOLEAN008) Then
  326.             If (BOOLEAN013) Log "Nuv hanging up on new user", 0
  327.             DispFile PPEPath() + "graph\nuvdisc", 1 + 4
  328.             Wait
  329.             Hangup
  330.         Else
  331.             End
  332.         Endif
  333.     Else
  334.         If (U_Sec > INTEGER013) Then
  335.             If (U_Sec < INTEGER037) Then
  336.                 If (BOOLEAN013) Log "Security too low for NUV, exiting", 0
  337.                 End
  338.             Endif
  339.             If (!Exist(STRING035) || !Exist(STRING036)) Then
  340.                 If (BOOLEAN013) Log "Nobody waiting for validation, exiting nuv", 0
  341.                 End
  342.             Endif
  343.             If (STRING010 == "/NEWONLY") Then
  344.                 End
  345.             Endif
  346.         Else
  347.             If (U_Sec < INTEGER013) Then
  348.                 FreshLine
  349.                 If (BOOLEAN012) Goto LABEL005
  350.                 If (BOOLEAN013) Log "low security user (" + Upper(String(U_Sec)) + ") not hanging up", 0
  351.                 End
  352.                 :LABEL005
  353.                 If (BOOLEAN013) Log "low security user (" + Upper(String(U_Sec)) + ") hanging up", 0
  354.                 DispFile PPEPath() + "graph\nuvout", 1 + 4
  355.                 Wait
  356.                 Hangup
  357.             Endif
  358.         Endif
  359.     Endif
  360.     INTEGER020 = 1
  361.     STRING023 = Chr(13)
  362.     STRING024 = Chr(27)
  363.     STRING025 = Chr(7)
  364.     If (AnsiOn()) Goto LABEL006
  365.     If (BOOLEAN013) Log "No ansi, exiting nuv", 0
  366.     Newline
  367.     PrintLn "No ansi capabilities, exiting nuv"
  368.     End
  369.     :LABEL006
  370.     STRING050 = PPEPath() + "cfg\nuvmenus.cfg"
  371.     Tokenize ReadLine(STRING050, 1)
  372.     STRING052 = GetToken()
  373.     INTEGER033 = GetToken()
  374.     INTEGER020 = 1
  375.     :LABEL007
  376.     StartDisp 1
  377.     INTEGER041 = ReadLine(STRING036, 1)
  378.     If (INTEGER041 == 0) Then
  379.         DefColor
  380.         End
  381.     Endif
  382.     If (INTEGER020 > INTEGER041) Then
  383.         If (INTEGER040 - INTEGER033 >= 1) Then
  384.             INTEGER020 = INTEGER040 - INTEGER033
  385.             Goto LABEL008
  386.         Endif
  387.         INTEGER020 = 1
  388.     Endif
  389.     :LABEL008
  390.     FClose -1
  391.     If (BOOLEAN006) Then
  392.         FreshLine
  393.         INTEGER007 = 1
  394.         For INTEGER022 = 1 To INTEGER041
  395.             STRING020 = ReadLine(STRING035, INTEGER007)
  396.             STRING039 = PPEPath() + "apps\" + Replace(Left(STRING020, 8), " ", "_")
  397.             STRING039 = Replace(STRING039, "=", "-")
  398.             STRING039 = Replace(STRING039, ",", "-")
  399.             STRING039 = Replace(STRING039, ".", "-") + ".vot"
  400.             If (Exist(STRING039)) Then
  401.                 INTEGER027 = 3
  402.                 BOOLEAN003 = 0
  403.                 While (1) Do
  404.                     STRING029 = ReadLine(STRING039, INTEGER027)
  405.                     If (STRING029 == "") Break
  406.                     If (Upper(STRING029) == Upper(STRING016)) Then
  407.                         BOOLEAN003 = 1
  408.                         Break
  409.                     Endif
  410.                     INTEGER027 = INTEGER027 + 2
  411.                 EndWhile
  412.                 If (BOOLEAN003) Goto LABEL009
  413.                 Inc INTEGER006
  414.                 BOOLEAN007 = 1
  415.                 :LABEL009
  416.                 Goto LABEL010
  417.             Endif
  418.             Inc INTEGER006
  419.             BOOLEAN007 = 1
  420.             :LABEL010
  421.             Inc INTEGER007
  422.             Inc INTEGER007
  423.         Next
  424.         If (STRING010 == "/FORCE") Then
  425.             If (BOOLEAN013) Log "/FORCE used, starting nuv", 0
  426.             Goto LABEL012
  427.         Endif
  428.         If (BOOLEAN007) Goto LABEL011
  429.         PrintLn ReadLine(STRING011, 23)
  430.         If (BOOLEAN013) Log "No voting left for user, exiting nuv", 0
  431.         End
  432.         Goto LABEL012
  433.         :LABEL011
  434.         If (!BOOLEAN009 && BOOLEAN011) Then
  435.             PrintLn ReadLine(STRING011, 22)
  436.             DispFile PPEPath() + "graph\nuvvot", 1 + 4
  437.             STRING015 = YesChar()
  438.             InputYN ReadLine(STRING011, 13), STRING015, 1
  439.             If ((STRING015 == "") || (Upper(STRING015) == Upper(NoChar()))) Then
  440.                 If (BOOLEAN013) Log "User elected not to vote, exiting nuv", 0
  441.                 End
  442.             Endif
  443.             Goto LABEL012
  444.         Endif
  445.         PrintLn ReadLine(STRING011, 22)
  446.         Delay 10
  447.         :LABEL012
  448.         BOOLEAN006 = 0
  449.     Endif
  450.     FClose -1
  451.     INTEGER021 = INTEGER041
  452.     STRING053 = Random(Time())
  453.     STRING053 = Random(STRING052 - 1) + 1
  454.     Tokenize ReadLine(STRING050, STRING053 - 1 + 2)
  455.     INTEGER058 = GetToken()
  456.     INTEGER059 = GetToken()
  457.     INTEGER015 = GetToken()
  458.     INTEGER016 = GetToken()
  459.     INTEGER019 = GetToken()
  460.     INTEGER042 = GetToken()
  461.     INTEGER008 = GetToken()
  462.     STRING037 = GetToken()
  463.     STRING034 = GetToken()
  464.     STRING051 = PPEPath() + "mnutxt\nuvmnu"
  465.     If (Exist(STRING051 + String(STRING053) + LangExt())) Then
  466.         STRING051 = PPEPath() + "mnutxt\nuvmnu" + String(STRING053) + LangExt()
  467.     ElseIf (Exist(STRING051 + String(STRING053))) Then
  468.         STRING051 = PPEPath() + "mnutxt\nuvmnu" + String(STRING053)
  469.     Else
  470.         PrintLn "ERROR nuvmnu file not found"
  471.         End
  472.     Endif
  473.     STRING017 = ReadLine(STRING051, 1)
  474.     STRING031 = ReadLine(STRING051, 2)
  475.     STRING040 = ReadLine(STRING051, 3)
  476.     STRING004 = ReadLine(STRING051, 4)
  477.     STRING005 = ReadLine(STRING051, 5)
  478.     STRING006 = ReadLine(STRING051, 6)
  479.     INTEGER046 = Len(StripAtx(STRING017)) - 4
  480.     :LABEL013
  481.     INTEGER017 = INTEGER015
  482.     INTEGER018 = INTEGER016
  483.     If (BOOLEAN015) Goto LABEL014
  484.     DefColor
  485.     Cls
  486.     DispFile PPEPath() + "graph\nuv" + String(STRING053), 1 + 4
  487.     :LABEL014
  488.     Color DefColor()
  489.     If (INTEGER033 >= INTEGER041) Then
  490.         INTEGER033 = INTEGER041
  491.     Endif
  492.     If (INTEGER020 + INTEGER033 <= INTEGER021) INTEGER034 = INTEGER020 + INTEGER033 - 1
  493.     If (INTEGER020 + INTEGER033 > INTEGER021) INTEGER034 = INTEGER021
  494.     INTEGER040 = INTEGER020
  495.     INTEGER039 = INTEGER034
  496.     Color DefColor()
  497.     INTEGER023 = INTEGER020 % INTEGER033
  498.     INTEGER007 = (INTEGER020 - 1) * 2 + 1
  499.     For INTEGER022 = INTEGER020 To INTEGER034
  500.         If (INTEGER023 == 0) INTEGER023 = INTEGER033
  501.         AnsiPos INTEGER017 - INTEGER046, INTEGER018 + INTEGER023 - 1
  502.         STRING020 = ReadLine(STRING035, INTEGER007)
  503.         STRING014 = Chr(Asc("a") + INTEGER023 - 1)
  504.         STRING007 = ReadLine(STRING035, INTEGER007 + 1)
  505.         Print ReplaceStr(STRING017, "%SEP%", Upper(STRING014)), STRING037, Mixed(Left(STRING020, INTEGER042))
  506.         STRING039 = PPEPath() + "apps\" + Replace(Left(STRING020, 8), " ", "_")
  507.         STRING039 = Replace(STRING039, "=", "-")
  508.         STRING039 = Replace(STRING039, ",", "-")
  509.         STRING039 = Replace(STRING039, ".", "-") + ".vot"
  510.         If (Exist(STRING039)) Then
  511.             INTEGER043 = ReadLine(STRING039, 1)
  512.             INTEGER044 = ReadLine(STRING039, 2)
  513.             INTEGER027 = 0
  514.             BOOLEAN005 = 0
  515.             While (1) Do
  516.                 STRING029 = ReadLine(STRING039, INTEGER027 + 3)
  517.                 If (STRING029 == "") Break
  518.                 If (Upper(STRING029) == Upper(STRING016)) Then
  519.                     STRING029 = ReadLine(STRING039, INTEGER027 + 4)
  520.                     If (STRING029 == "ABS") Then
  521.                         STRING029 = STRING004
  522.                         Goto LABEL015
  523.                     Endif
  524.                     If (STRING029 == "YES") Then
  525.                         STRING029 = STRING005
  526.                         Goto LABEL015
  527.                     Endif
  528.                     STRING029 = STRING006
  529.                     :LABEL015
  530.                     BOOLEAN005 = 1
  531.                     Print ReplaceStr(ReplaceStr(ReplaceStr(ReplaceStr(STRING031, "%YES%", Left(String(INTEGER043), 3)), "%NO%", Left(String(INTEGER044), 3)), "%YOUR%", String(STRING029)), "%C%", Mixed(Left(STRING007, INTEGER008)))
  532.                     Break
  533.                 Endif
  534.                 Inc INTEGER027
  535.                 Inc INTEGER027
  536.             EndWhile
  537.             If (BOOLEAN005) Goto LABEL016
  538.             Print ReplaceStr(ReplaceStr(ReplaceStr(ReplaceStr(STRING031, "%YES%", Left(String(INTEGER043), 3)), "%NO%", Left(String(INTEGER044), 3)), "%YOUR%", String(STRING040)), "%C%", Mixed(Left(STRING007, INTEGER008)))
  539.             :LABEL016
  540.         Else
  541.             Print ReplaceStr(ReplaceStr(ReplaceStr(ReplaceStr(STRING031, "%YES%", Left(String(0), 3)), "%NO%", Left(String(0), 3)), "%YOUR%", String(STRING040)), "%C%", Mixed(Left(STRING007, INTEGER008)))
  542.         Endif
  543.         Inc INTEGER023
  544.         Inc INTEGER007
  545.         Inc INTEGER007
  546.     Next
  547.     If (INTEGER020 + INTEGER033 > INTEGER021) Then
  548.         INTEGER022 = INTEGER020 + INTEGER033 - INTEGER021
  549.         INTEGER010 = GetY()
  550.         For INTEGER023 = 1 To INTEGER022 - 1
  551.             AnsiPos INTEGER017 - INTEGER046, INTEGER010 + INTEGER023
  552.             Print Space(INTEGER019)
  553.         Next
  554.     Endif
  555.     Newline
  556.     BOOLEAN015 = 0
  557.     AnsiPos INTEGER017, INTEGER018
  558.     INTEGER009 = (INTEGER020 - 1) * 2 + 1
  559.     Print STRING034, Mixed(Left(StripAtx(ReadLine(STRING035, INTEGER009)), INTEGER042))
  560.     FClose -1
  561.     :LABEL017
  562.     STRING015 = Inkey()
  563.     If (((Upper(STRING015) == ",") || (STRING015 == "UP")) || (STRING015 == "LEFT")) Then
  564.         INTEGER023 = INTEGER020 % INTEGER033
  565.         If (INTEGER023 == 0) INTEGER023 = INTEGER033
  566.         AnsiPos INTEGER017, INTEGER018 + INTEGER023 - 1
  567.         Print STRING037 + Mixed(Left(ReadLine(STRING035, INTEGER009), INTEGER042))
  568.         If (INTEGER020 % INTEGER033 == 1) Then
  569.             INTEGER020 = INTEGER020 + INTEGER033 - 1
  570.             If (INTEGER020 > INTEGER021) INTEGER020 = INTEGER021
  571.         Else
  572.             INTEGER020 = INTEGER020 - 1 % INTEGER033
  573.         Endif
  574.         INTEGER009 = (INTEGER020 - 1) * 2 + 1
  575.         INTEGER023 = INTEGER020 % INTEGER033
  576.         If (INTEGER023 == 0) INTEGER023 = INTEGER033
  577.         AnsiPos INTEGER017, INTEGER018 + INTEGER023 - 1
  578.         Print STRING034, Mixed(Left(StripAtx(ReadLine(STRING035, INTEGER009)), INTEGER042))
  579.         FClose -1
  580.         Goto LABEL017
  581.     ElseIf (((Upper(STRING015) == ".") || (STRING015 == "DOWN")) || (STRING015 == "RIGHT")) Then
  582.         INTEGER023 = INTEGER020 % INTEGER033
  583.         If (INTEGER023 == 0) INTEGER023 = INTEGER033
  584.         AnsiPos INTEGER017, INTEGER018 + INTEGER023 - 1
  585.         Print STRING037 + Mixed(Left(ReadLine(STRING035, INTEGER009), INTEGER042))
  586.         If (INTEGER020 % INTEGER033 == 0) Then
  587.             INTEGER020 = INTEGER020 - INTEGER033 - 1
  588.         ElseIf (INTEGER020 == INTEGER021) Then
  589.             INTEGER020 = INTEGER040
  590.         Else
  591.             INTEGER020 = INTEGER020 + 1
  592.         Endif
  593.         INTEGER009 = (INTEGER020 - 1) * 2 + 1
  594.         INTEGER023 = INTEGER020 % INTEGER033
  595.         If (INTEGER023 == 0) INTEGER023 = INTEGER033
  596.         AnsiPos INTEGER017, INTEGER018 + INTEGER023 - 1
  597.         Print STRING034, Mixed(Left(StripAtx(ReadLine(STRING035, INTEGER009)), INTEGER042))
  598.         FClose -1
  599.         Goto LABEL017
  600.     Else
  601.         Select Case (STRING015)
  602.             Case STRING023
  603.                 INTEGER022 = INTEGER020
  604.                 Gosub LABEL019
  605.                 INTEGER020 = INTEGER040
  606.                 Goto LABEL007
  607.             Case "HOME"
  608.                 INTEGER023 = INTEGER020 % INTEGER033
  609.                 If (INTEGER023 == 0) INTEGER023 = INTEGER033
  610.                 AnsiPos INTEGER017, INTEGER018 + INTEGER023 - 1
  611.                 Print STRING037 + Mixed(Left(ReadLine(STRING035, INTEGER009), INTEGER042))
  612.                 INTEGER020 = INTEGER040
  613.                 INTEGER023 = INTEGER020 % INTEGER033
  614.                 If (INTEGER023 == 0) INTEGER023 = INTEGER033
  615.                 AnsiPos INTEGER017, INTEGER018 + INTEGER023 - 1
  616.                 INTEGER009 = (INTEGER020 - 1) * 2 + 1
  617.                 Print STRING034, Mixed(Left(StripAtx(ReadLine(STRING035, INTEGER009)), INTEGER042))
  618.                 FClose -1
  619.                 Goto LABEL017
  620.             Case "END"
  621.                 INTEGER023 = INTEGER020 % INTEGER033
  622.                 If (INTEGER023 == 0) INTEGER023 = INTEGER033
  623.                 AnsiPos INTEGER017, INTEGER018 + INTEGER023 - 1
  624.                 Print STRING037 + Mixed(Left(ReadLine(STRING035, INTEGER009), INTEGER042))
  625.                 INTEGER020 = INTEGER039
  626.                 INTEGER023 = INTEGER020 % INTEGER033
  627.                 If (INTEGER023 == 0) INTEGER023 = INTEGER033
  628.                 AnsiPos INTEGER017, INTEGER018 + INTEGER023 - 1
  629.                 INTEGER009 = (INTEGER020 - 1) * 2 + 1
  630.                 Print STRING034, Mixed(Left(StripAtx(ReadLine(STRING035, INTEGER009)), INTEGER042))
  631.                 FClose -1
  632.                 Goto LABEL017
  633.             Case ">", "CTRL PGDN"
  634.                 If (INTEGER039 + INTEGER033 <= INTEGER021) Then
  635.                     INTEGER020 = INTEGER039 + 1
  636.                     BOOLEAN015 = 1
  637.                     Goto LABEL013
  638.                 Else
  639.                     If (INTEGER039 <> INTEGER021) Then
  640.                         INTEGER020 = INTEGER039 + 1
  641.                         BOOLEAN015 = 1
  642.                         Goto LABEL013
  643.                     Endif
  644.                     MPrint STRING025
  645.                     Goto LABEL017
  646.                 Endif
  647.             Case "<", "CTRL PGUP"
  648.                 If (INTEGER040 - INTEGER033 >= 1) Then
  649.                     INTEGER020 = INTEGER040 - INTEGER033
  650.                     BOOLEAN015 = 1
  651.                     Goto LABEL013
  652.                 Else
  653.                     MPrint STRING025
  654.                     Goto LABEL017
  655.                 Endif
  656.             Case "?"
  657.                 INTEGER028 = GetX()
  658.                 INTEGER029 = GetY()
  659.                 DefColor
  660.                 AnsiPos 1, 23
  661.                 SaveScrn
  662.                 Cls
  663.                 StartDisp 2
  664.                 DispFile PPEPath() + "graph\nuvhlp", 1 + 4
  665.                 Wait
  666.                 StartDisp 1
  667.                 RestScrn
  668.                 AnsiPos INTEGER028, INTEGER029
  669.                 Goto LABEL017
  670.             Case "Q", STRING024
  671.                 If (BOOLEAN009) Then
  672.                     If (INTEGER006 > 0) Then
  673.                         INTEGER028 = GetX()
  674.                         INTEGER029 = GetY()
  675.                         AnsiPos INTEGER058, INTEGER059
  676.                         Print ReadLine(STRING011, 25)
  677.                         AnsiPos INTEGER028, INTEGER029
  678.                         Goto LABEL017
  679.                     Endif
  680.                 Endif
  681.                 DefColor
  682.                 Cls
  683.                 End
  684.             Case ""
  685.                 If ((Asc(Lower(STRING015)) >= Asc("a")) && (Asc(Lower(STRING015)) <= Asc(STRING014))) Then
  686.                     INTEGER020 = INTEGER040 + Asc(Lower(STRING015)) - Asc("a")
  687.                     INTEGER022 = INTEGER020
  688.                     Gosub LABEL019
  689.                     INTEGER020 = INTEGER040
  690.                     Goto LABEL007
  691.                 Endif
  692.                 If (BOOLEAN002) If (STRING015 <> "") PrintLn STRING015
  693.                 Goto LABEL017
  694.             Endif
  695.     End Select
  696.     Goto LABEL017
  697.     End
  698.     If (LoggedOn()) Goto LABEL018
  699.     FPutLn 3, "matrix:" + ""
  700.     Return
  701.     :LABEL018
  702.     Log "", 0
  703.     Return
  704.     :LABEL019
  705.     INTEGER011 = INTEGER022
  706.     STRING038 = ReadLine(STRING035, (INTEGER022 - 1) * 2 + 1)
  707.     FClose -1
  708.     STRING039 = PPEPath() + "apps\" + Replace(Left(STRING038, 8), " ", "_")
  709.     STRING039 = Replace(STRING039, "=", "-")
  710.     STRING039 = Replace(STRING039, ",", "-")
  711.     STRING039 = Replace(STRING039, ".", "-") + ".vot"
  712.     If (Exist(STRING039)) Then
  713.         INTEGER043 = ReadLine(STRING039, 1)
  714.         INTEGER044 = ReadLine(STRING039, 2)
  715.     Else
  716.         INTEGER043 = 0
  717.         INTEGER044 = 0
  718.     Endif
  719.     If (STRING038 == "") Return
  720.     DefColor
  721.     Cls
  722.     INTEGER048 = STRING052 + 1
  723.     INTEGER047 = ReadLine(STRING050, INTEGER048 + 1)
  724.     STRING053 = Random(Time())
  725.     STRING053 = Random(INTEGER047 - 1) + 1
  726.     DispFile PPEPath() + "graph\vote" + String(STRING053), 1 + 4
  727.     Tokenize ReadLine(STRING050, INTEGER048 + 1 + STRING053)
  728.     INTEGER049 = GetToken()
  729.     INTEGER050 = GetToken()
  730.     AnsiPos GetToken(), GetToken()
  731.     Print GetToken(), Mixed(STRING038)
  732.     AnsiPos GetToken(), GetToken()
  733.     Print GetToken(), String(INTEGER043)
  734.     AnsiPos GetToken(), GetToken()
  735.     Print GetToken(), String(INTEGER044)
  736.     AnsiPos GetToken(), GetToken()
  737.     If (INTEGER035 == 0) Then
  738.         Print GetToken(), ReadLine(STRING011, 26)
  739.     Else
  740.         Print GetToken(), String(INTEGER035)
  741.     Endif
  742.     AnsiPos GetToken(), GetToken()
  743.     If (INTEGER036 == 0) Then
  744.         Print GetToken(), ReadLine(STRING011, 26)
  745.     Else
  746.         Print GetToken(), String(INTEGER036)
  747.     Endif
  748.     INTEGER053 = GetToken()
  749.     INTEGER054 = GetToken()
  750.     STRING044 = PPEPath() + "apps\" + Replace(Left(STRING038, 8), " ", "_")
  751.     STRING044 = Replace(STRING044, "=", "-")
  752.     STRING044 = Replace(STRING044, ",", "-")
  753.     STRING044 = Replace(STRING044, ".", "-") + ".cmt"
  754.     INTEGER051 = GetToken()
  755.     INTEGER052 = GetToken()
  756.     Redim TSTRING008, INTEGER052
  757.     STRING046 = GetToken()
  758.     STRING047 = GetToken()
  759.     INTEGER056 = 1
  760.     INTEGER057 = 1
  761.     For INTEGER022 = 1 To INTEGER052
  762.         STRING045 = ReadLine(STRING044, INTEGER022)
  763.         If (STRING045 <> "") Then
  764.             AnsiPos INTEGER053, INTEGER054 + INTEGER022 - 1
  765.             Print STRING045
  766.             Inc INTEGER056
  767.             Continue
  768.         Endif
  769.         Break
  770.     Next
  771.     For INTEGER022 = 1 To INTEGER005
  772.         TINTEGER002(INTEGER022) = GetToken()
  773.         TINTEGER003(INTEGER022) = GetToken()
  774.         TSTRING001(INTEGER022) = ScrText(TINTEGER002(INTEGER022), TINTEGER003(INTEGER022), ToInteger(GetToken()), 1)
  775.         TSTRING009(INTEGER022) = Left(StripAtx(TSTRING001(INTEGER022)), 1)
  776.     Next
  777.     STRING002 = GetToken()
  778.     INTEGER004 = 1
  779.     AnsiPos TINTEGER002(1), TINTEGER003(1)
  780.     Print STRING002, StripAtx(TSTRING001(1))
  781.     FClose -1
  782.     STRING015 = ""
  783.     :LABEL020
  784.     STRING015 = Inkey()
  785.     If (((Upper(STRING015) == ",") || (STRING015 == "UP")) || (STRING015 == "LEFT")) Then
  786.         AnsiPos TINTEGER002(INTEGER004), TINTEGER003(INTEGER004)
  787.         Print TSTRING001(INTEGER004)
  788.         If (INTEGER004 == 1) Then
  789.             INTEGER004 = INTEGER005
  790.         Else
  791.             Dec INTEGER004
  792.         Endif
  793.         AnsiPos TINTEGER002(INTEGER004), TINTEGER003(INTEGER004)
  794.         Print STRING002, StripAtx(TSTRING001(INTEGER004))
  795.         Goto LABEL020
  796.     ElseIf (((Upper(STRING015) == ".") || (STRING015 == "DOWN")) || (STRING015 == "RIGHT")) Then
  797.         AnsiPos TINTEGER002(INTEGER004), TINTEGER003(INTEGER004)
  798.         Print TSTRING001(INTEGER004)
  799.         If (INTEGER004 == INTEGER005) Then
  800.             INTEGER004 = 1
  801.         Else
  802.             Inc INTEGER004
  803.         Endif
  804.         AnsiPos TINTEGER002(INTEGER004), TINTEGER003(INTEGER004)
  805.         Print STRING002, StripAtx(TSTRING001(INTEGER004))
  806.         Goto LABEL020
  807.     Else
  808.         Select Case (STRING015)
  809.             Case ">"
  810.                 STRING045 = ReadLine(STRING044, INTEGER057 + INTEGER052)
  811.                 INTEGER028 = GetX()
  812.                 INTEGER029 = GetY()
  813.                 If (STRING045 == "") Then
  814.                     Gosub LABEL048
  815.                     AnsiPos INTEGER049, INTEGER050
  816.                     Print ReadLine(STRING011, 1)
  817.                     INTEGER055 = GetX()
  818.                     AnsiPos INTEGER028, INTEGER029
  819.                 Else
  820.                     For INTEGER022 = 1 To INTEGER052
  821.                         DefColor
  822.                         AnsiPos INTEGER053, INTEGER054 + INTEGER022 - 1
  823.                         Print Space(INTEGER051)
  824.                     Next
  825.                     INTEGER057 = INTEGER057 + INTEGER052
  826.                     For INTEGER022 = 1 To INTEGER052
  827.                         STRING045 = ReadLine(STRING044, INTEGER057 + INTEGER022 - 1)
  828.                         If (STRING045 <> "") Then
  829.                             AnsiPos INTEGER053, INTEGER054 + INTEGER022 - 1
  830.                             Print STRING045
  831.                             Inc INTEGER056
  832.                             Continue
  833.                         Endif
  834.                         Break
  835.                     Next
  836.                     AnsiPos INTEGER028, INTEGER029
  837.                 Endif
  838.             Case "<"
  839.                 INTEGER028 = GetX()
  840.                 INTEGER029 = GetY()
  841.                 If (INTEGER057 - INTEGER052 >= 0) Then
  842.                     INTEGER057 = INTEGER057 - INTEGER052
  843.                 Else
  844.                     Gosub LABEL048
  845.                     AnsiPos INTEGER049, INTEGER050
  846.                     Print ReadLine(STRING011, 2)
  847.                     INTEGER055 = GetX()
  848.                     AnsiPos INTEGER028, INTEGER029
  849.                     Goto LABEL020
  850.                 Endif
  851.                 For INTEGER022 = 1 To INTEGER052
  852.                     DefColor
  853.                     AnsiPos INTEGER053, INTEGER054 + INTEGER022 - 1
  854.                     Print Space(INTEGER051)
  855.                 Next
  856.                 Inc INTEGER056
  857.                 For INTEGER022 = 1 To INTEGER052
  858.                     STRING045 = ReadLine(STRING044, INTEGER057 + INTEGER022 - 1)
  859.                     If (STRING045 <> "") Then
  860.                         AnsiPos INTEGER053, INTEGER054 + INTEGER022 - 1
  861.                         Print STRING045
  862.                         Continue
  863.                     Endif
  864.                     Break
  865.                 Next
  866.                 AnsiPos INTEGER028, INTEGER029
  867.             Case "?"
  868.                 INTEGER028 = GetX()
  869.                 INTEGER029 = GetY()
  870.                 DefColor
  871.                 AnsiPos 1, 23
  872.                 SaveScrn
  873.                 Cls
  874.                 StartDisp 2
  875.                 DispFile PPEPath() + "graph\nuvhlp", 1 + 4
  876.                 Wait
  877.                 StartDisp 1
  878.                 RestScrn
  879.                 AnsiPos INTEGER028, INTEGER029
  880.                 Goto LABEL020
  881.             Case ""
  882.                 If (STRING015 == STRING023) Goto LABEL021
  883.                 For INTEGER022 = 1 To INTEGER005
  884.                     If (Upper(TSTRING009(INTEGER022)) == Upper(STRING015)) Then
  885.                         AnsiPos TINTEGER002(INTEGER004), TINTEGER003(INTEGER004)
  886.                         Print TSTRING001(INTEGER004)
  887.                         INTEGER004 = INTEGER022
  888.                         AnsiPos TINTEGER002(INTEGER004), TINTEGER003(INTEGER004)
  889.                         Print STRING002, StripAtx(TSTRING001(INTEGER004))
  890.                         Goto LABEL022
  891.                     Endif
  892.                 Next
  893.                 :LABEL021
  894.             Case STRING023
  895.                 :LABEL022
  896.                 INTEGER030 = GetX()
  897.                 INTEGER031 = GetY()
  898.                 If (INTEGER004 == 1) Then
  899.                     STRING003 = "YES"
  900.                     Gosub LABEL025
  901.                     If (BOOLEAN016) Then
  902.                         Gosub LABEL048
  903.                         AnsiPos INTEGER049, INTEGER050
  904.                         Print ReadLine(STRING011, 3)
  905.                         Wait
  906.                         BOOLEAN016 = 0
  907.                         Return
  908.                     Endif
  909.                     Goto LABEL024
  910.                 Endif
  911.                 If (INTEGER004 == 2) Then
  912.                     STRING003 = "NO"
  913.                     Gosub LABEL025
  914.                     If (BOOLEAN017) Then
  915.                         Gosub LABEL048
  916.                         AnsiPos INTEGER049, INTEGER050
  917.                         Print ReadLine(STRING011, 4)
  918.                         Wait
  919.                         BOOLEAN017 = 0
  920.                         Return
  921.                     Endif
  922.                     Goto LABEL024
  923.                 Endif
  924.                 If (INTEGER004 == 3) Then
  925.                     Return
  926.                     Goto LABEL024
  927.                 Endif
  928.                 If (INTEGER004 == 4) Then
  929.                     Gosub LABEL032
  930.                     Goto LABEL024
  931.                 Endif
  932.                 If (INTEGER004 == 5) Then
  933.                     Gosub LABEL038
  934.                     Goto LABEL024
  935.                 Endif
  936.                 If (INTEGER004 == 6) Then
  937.                     Gosub LABEL043
  938.                     If (BOOLEAN017) Then
  939.                         Gosub LABEL048
  940.                         AnsiPos INTEGER049, INTEGER050
  941.                         Print ReadLine(STRING011, 4)
  942.                         Wait
  943.                         BOOLEAN017 = 0
  944.                         Return
  945.                         Goto LABEL023
  946.                     Endif
  947.                     If (BOOLEAN016) Then
  948.                         Gosub LABEL048
  949.                         AnsiPos INTEGER049, INTEGER050
  950.                         Print ReadLine(STRING011, 3)
  951.                         Wait
  952.                         BOOLEAN016 = 0
  953.                         Return
  954.                     Endif
  955.                     :LABEL023
  956.                     Goto LABEL024
  957.                 Endif
  958.                 If (INTEGER004 == 7) Then
  959.                     If (BOOLEAN010) Then
  960.                         STRING003 = "ABS"
  961.                         Gosub LABEL025
  962.                         Goto LABEL024
  963.                     Endif
  964.                     AnsiPos INTEGER049, INTEGER050
  965.                     Print ReadLine(STRING011, 24)
  966.                     INTEGER055 = GetX()
  967.                 Endif
  968.                 :LABEL024
  969.                 AnsiPos INTEGER030, INTEGER031
  970.             Endif
  971.     End Select
  972.     Goto LABEL020
  973.     End
  974.     :LABEL025
  975.     If (BOOLEAN013) Log "User (" + Upper(STRING038) + ") selected for voting", 0
  976.     STRING041 = Replace(Left(STRING038, 8), " ", "_")
  977.     STRING039 = PPEPath() + "apps\" + Replace(Left(STRING038, 8), " ", "_")
  978.     STRING039 = Replace(STRING039, "=", "-")
  979.     STRING039 = Replace(STRING039, ",", "-")
  980.     STRING039 = Replace(STRING039, ".", "-") + ".vot"
  981.     INTEGER043 = 0
  982.     INTEGER044 = 0
  983.     INTEGER022 = 0
  984.     While (1) Do
  985.         STRING029 = ReadLine(STRING039, INTEGER022 * 2 + 3)
  986.         If (STRING029 == "") Break
  987.         STRING030 = STRING029
  988.         If (Upper(STRING030) == Upper(STRING016)) Then
  989.             STRING030 = Upper(ReadLine(STRING039, INTEGER022 * 2 + 4))
  990.             AnsiPos INTEGER049, INTEGER050
  991.             If (Upper(STRING030) == "ABS") STRING030 = "Abstain"
  992.             Print ReplaceStr(ReadLine(STRING011, 5), "%OPTEXT%", STRING030)
  993.             INTEGER055 = GetX()
  994.             Return
  995.         Endif
  996.         Inc INTEGER022
  997.     EndWhile
  998.     Gosub LABEL048
  999.     AnsiPos INTEGER049, INTEGER050
  1000.     STRING015 = YesChar()
  1001.     Select Case (STRING003)
  1002.         Case "YES"
  1003.             InputYN ReadLine(STRING011, 19), STRING015, 1
  1004.         Case "NO"
  1005.             InputYN ReadLine(STRING011, 20), STRING015, 1
  1006.         Case Else
  1007.             InputYN ReadLine(STRING011, 12), STRING015, 1
  1008.     End Select
  1009.     INTEGER055 = GetX() + 3
  1010.     If (Upper(STRING015) <> Upper(YesChar())) Then
  1011.         Gosub LABEL048
  1012.         Return
  1013.     Endif
  1014.     Gosub LABEL048
  1015.     FClose -1
  1016.     If (Exist(STRING039)) Goto LABEL026
  1017.     If (BOOLEAN013) Log "Voting aborted (already voted in/out?)", 0
  1018.     Return
  1019.     :LABEL026
  1020.     FOpen 1, STRING039, 2, 3
  1021.     FGet 1, STRING022
  1022.     If (Upper(STRING022) == "VOTIN") Then
  1023.         Newline
  1024.         If (BOOLEAN013) Log "NUV aborted (already voted in)", 0
  1025.         FClose 1
  1026.         BOOLEAN014 = 1
  1027.         Gosub LABEL042
  1028.         Return
  1029.     Endif
  1030.     If (Upper(STRING022) == "VOOUT") Then
  1031.         If (BOOLEAN013) Log "NUV aborted (already voted out)", 0
  1032.         FClose 1
  1033.         BOOLEAN014 = 0
  1034.         Gosub LABEL042
  1035.         Return
  1036.     Endif
  1037.     If (Upper(STRING022) == "") Then
  1038.         If (BOOLEAN013) Log "NUV aborted (.vot file empty?)", 0
  1039.         FClose 1
  1040.         Delete STRING039
  1041.         Return
  1042.     Endif
  1043.     FClose -1
  1044.     FSeek 1, 0, 0
  1045.     FGet 1, INTEGER043
  1046.     FGet 1, INTEGER044
  1047.     Select Case (STRING003)
  1048.         Case "YES"
  1049.             If (BOOLEAN013) Log "nuv: voted yes", 0
  1050.             Inc INTEGER043
  1051.             FSeek 1, 0, 2
  1052.             FPutLn 1, STRING016
  1053.             FPutLn 1, "YES"
  1054.             Gosub LABEL048
  1055.             AnsiPos INTEGER049, INTEGER050
  1056.             Print ReadLine(STRING011, 10)
  1057.             INTEGER055 = GetX()
  1058.             If (INTEGER006 > 0) Dec INTEGER006
  1059.         Case "NO"
  1060.             If (BOOLEAN013) Log "nuv: voted no", 0
  1061.             Inc INTEGER044
  1062.             FSeek 1, 0, 2
  1063.             FPutLn 1, STRING016
  1064.             FPutLn 1, "NO "
  1065.             Gosub LABEL048
  1066.             AnsiPos INTEGER049, INTEGER050
  1067.             Print ReadLine(STRING011, 14)
  1068.             INTEGER055 = GetX()
  1069.             If (INTEGER006 > 0) Dec INTEGER006
  1070.         Case Else
  1071.             If (BOOLEAN013) Log "nuv: voted abstain", 0
  1072.             FSeek 1, 0, 2
  1073.             FPutLn 1, STRING016
  1074.             FPutLn 1, "ABS"
  1075.             Gosub LABEL048
  1076.             AnsiPos INTEGER049, INTEGER050
  1077.             Print ReadLine(STRING011, 6)
  1078.             INTEGER055 = GetX()
  1079.             FClose 1
  1080.             If (INTEGER006 > 0) Dec INTEGER006
  1081.             Return
  1082.     End Select
  1083.     FSeek 1, 0, 0
  1084.     FPutLn 1, Left(String(INTEGER043), 5)
  1085.     FPutLn 1, Left(String(INTEGER044), 5)
  1086.     Gosub LABEL027
  1087.     Return
  1088.     :LABEL027
  1089.     INTEGER012 = U_RecNum(Upper(STRING038))
  1090.     BOOLEAN001 = 0
  1091.     If (INTEGER012 == -1) Then
  1092.         If (BOOLEAN013) Log "nuv: user record number for " + STRING038 + " not found", 0
  1093.         BOOLEAN001 = 1
  1094.         Gosub LABEL048
  1095.         AnsiPos INTEGER049, INTEGER050
  1096.         Print ReadLine(STRING011, 28)
  1097.         INTEGER055 = GetX()
  1098.         Gosub LABEL048
  1099.     Endif
  1100.     If (BOOLEAN001) Goto LABEL028
  1101.     GetAltUser INTEGER012
  1102.     If (U_Sec <> INTEGER013) Then
  1103.         If (BOOLEAN013) Log "nuv: new user security is incorrect (" + String(U_Sec) + " should be " + String(INTEGER013) + ")", 0
  1104.         Gosub LABEL048
  1105.         AnsiPos INTEGER049, INTEGER050
  1106.         Print ReadLine(STRING011, 27)
  1107.         INTEGER055 = GetX()
  1108.         BOOLEAN001 = 1
  1109.     Endif
  1110.     :LABEL028
  1111.     FClose -1
  1112.     If (INTEGER044 >= INTEGER036) Then
  1113.         If (INTEGER036 == 0) Then
  1114.             FClose 1
  1115.             Gosub LABEL038
  1116.             GetUser
  1117.             Return
  1118.         Endif
  1119.         If (BOOLEAN013) Log "nuv: user " + STRING016 + " was voted OUT", 0
  1120.         If (BOOLEAN001) Goto LABEL029
  1121.         Select Case (INTEGER060)
  1122.             Case -1
  1123.                 U_Sec = 0
  1124.                 DelUser
  1125.             Case -2
  1126.                 Gosub LABEL049
  1127.                 U_Sec = 0
  1128.                 DelUser
  1129.             Case Else
  1130.                 U_Sec = INTEGER060
  1131.         End Select
  1132.         PutUser
  1133.         :LABEL029
  1134.         Gosub LABEL031
  1135.         FSeek 1, 0, 0
  1136.         FPutLn 1, "VOOUT"
  1137.         FClose 1
  1138.         BOOLEAN014 = 0
  1139.         BOOLEAN017 = 1
  1140.         Gosub LABEL038
  1141.         Gosub LABEL042
  1142.     Else
  1143.         If (INTEGER043 >= INTEGER035) Then
  1144.             If (INTEGER035 == 0) Then
  1145.                 FClose 1
  1146.                 Gosub LABEL038
  1147.                 GetUser
  1148.                 Return
  1149.             Endif
  1150.             If (BOOLEAN013) Log "nuv: user " + STRING016 + " was voted IN", 0
  1151.             If (BOOLEAN001) Goto LABEL030
  1152.             U_Sec = INTEGER014
  1153.             PutUser
  1154.             :LABEL030
  1155.             Gosub LABEL031
  1156.             FSeek 1, 0, 0
  1157.             FPutLn 1, "VOTIN"
  1158.             FClose 1
  1159.             BOOLEAN014 = 1
  1160.             BOOLEAN016 = 1
  1161.             Gosub LABEL038
  1162.             Gosub LABEL042
  1163.         Else
  1164.             FClose 1
  1165.             Gosub LABEL038
  1166.         Endif
  1167.     Endif
  1168.     GetUser
  1169.     Return
  1170.     :LABEL031
  1171.     FClose -1
  1172.     STRING032 = PPEPath() + "work\waittmp." + String(PcbNode())
  1173.     Copy STRING035, STRING032
  1174.     FCreate 2, STRING035, 1, 3
  1175.     INTEGER024 = 1
  1176.     For INTEGER032 = 1 To INTEGER041
  1177.         STRING022 = ReadLine(STRING032, INTEGER024)
  1178.         If (Upper(STRING022) <> Upper(STRING038)) Then
  1179.             FPutLn 2, STRING022
  1180.             Inc INTEGER024
  1181.             FPutLn 2, ReadLine(STRING032, INTEGER024)
  1182.             Inc INTEGER024
  1183.             Continue
  1184.         Endif
  1185.         Inc INTEGER024
  1186.         Inc INTEGER024
  1187.     Next
  1188.     FClose 2
  1189.     FClose -1
  1190.     Delete STRING032
  1191.     INTEGER041 = INTEGER041 - 1
  1192.     FCreate 2, STRING036, 1, 3
  1193.     FPutLn 2, String(INTEGER041)
  1194.     FClose 2
  1195.     Return
  1196.     :LABEL032
  1197.     STRING019 = PPEPath() + "apps\" + Replace(Left(STRING038, 8), " ", "_")
  1198.     STRING019 = Replace(STRING019, "=", "-")
  1199.     STRING019 = Replace(STRING019, ",", "-")
  1200.     STRING019 = Replace(STRING019, ".", "-") + "."
  1201.     STRING018 = PPEPath() + "forms\" + "cfg."
  1202.     INTEGER025 = 9
  1203.     BOOLEAN004 = 0
  1204.     While (1) Do
  1205.         STRING021 = ReadLine(STRING012, INTEGER025)
  1206.         If (STRING021 == "") Break
  1207.         INTEGER045 = STRING021
  1208.         If (U_Sec >= INTEGER045) Then
  1209.             If (Exist(STRING019 + String(INTEGER025 - 8))) Then
  1210.                 If (BOOLEAN004) Goto LABEL033
  1211.                 INTEGER028 = GetX()
  1212.                 INTEGER029 = GetY()
  1213.                 AnsiPos 1, 23
  1214.                 DefColor
  1215.                 SaveScrn
  1216.                 Cls
  1217.                 BOOLEAN004 = 1
  1218.                 :LABEL033
  1219.                 DispFile STRING019 + String(INTEGER025 - 8), 1 + 4
  1220.                 Print ""
  1221.                 FClose -1
  1222.                 AnsiPos 1, 23
  1223.                 Wait
  1224.             Endif
  1225.         Endif
  1226.         Inc INTEGER025
  1227.     EndWhile
  1228.     If (BOOLEAN004) RestScrn
  1229.     If (BOOLEAN004) Goto LABEL034
  1230.     Gosub LABEL048
  1231.     AnsiPos INTEGER049, INTEGER050
  1232.     Print ReadLine(STRING011, 15)
  1233.     INTEGER055 = GetX()
  1234.     Goto LABEL035
  1235.     :LABEL034
  1236.     Gosub LABEL048
  1237.     AnsiPos INTEGER049, INTEGER050
  1238.     Print ReadLine(STRING011, 16)
  1239.     INTEGER055 = GetX()
  1240.     :LABEL035
  1241.     AnsiPos INTEGER028, INTEGER029
  1242.     FClose -1
  1243.     Return
  1244.     STRING028 = PPEPath() + "apps\" + Replace(Left(STRING038, 8), " ", "_")
  1245.     STRING028 = Replace(STRING028, "=", "-")
  1246.     STRING028 = Replace(STRING028, ",", "-")
  1247.     STRING028 = Replace(STRING028, ".", "-") + ".cmt"
  1248.     If (Exist(STRING028)) Then
  1249.         :LABEL036
  1250.         STRING015 = YesChar()
  1251.         If (STRING015 == "") Then
  1252.             Newline
  1253.             Goto LABEL036
  1254.         Endif
  1255.         If (Upper(STRING015) == Upper(YesChar())) Then
  1256.             Newline
  1257.             StartDisp 2
  1258.             DispFile STRING028, 1 + 4
  1259.             StartDisp 1
  1260.             Goto LABEL037
  1261.         Endif
  1262.         Newline
  1263.         Return
  1264.     Endif
  1265.     :LABEL037
  1266.     Return
  1267.     :LABEL038
  1268.     STRING015 = YesChar()
  1269.     Gosub LABEL048
  1270.     INTEGER064 = 1
  1271.     For INTEGER022 = 1 To INTEGER052
  1272.         DefColor
  1273.         TSTRING008(INTEGER022) = ScrText(INTEGER053, INTEGER054 + INTEGER022 - 1, INTEGER051 + 4, 1)
  1274.         AnsiPos INTEGER053, INTEGER054 + INTEGER022 - 1
  1275.         Print Space(INTEGER051)
  1276.     Next
  1277.     STRING028 = PPEPath() + "apps\" + Replace(Left(STRING038, 8), " ", "_")
  1278.     STRING028 = Replace(STRING028, "=", "-")
  1279.     STRING028 = Replace(STRING028, ",", "-")
  1280.     STRING028 = Replace(STRING028, ".", "-") + ".cmt"
  1281.     FAppend 2, STRING028, 1, 3
  1282.     If (Upper(STRING015) == Upper(YesChar())) Then
  1283.         STRING013 = ""
  1284.         AnsiPos INTEGER053, INTEGER054
  1285.         Print ReadLine(STRING011, 7)
  1286.         :LABEL039
  1287.         STRING013 = ""
  1288.         AnsiPos INTEGER053, INTEGER054 + INTEGER064
  1289.         InputText ReadLine(STRING011, 11) + "_", STRING013, 1, INTEGER051
  1290.         If ((STRING013 == "") && (INTEGER064 == 1)) Then
  1291.             FClose 2
  1292.             Goto LABEL041
  1293.             AnsiPos INTEGER049, INTEGER050
  1294.             Goto LABEL039
  1295.         Endif
  1296.         If (STRING013 == "") Goto LABEL040
  1297.         If (INTEGER064 < 3) Then
  1298.             If (INTEGER064 == 1) FPutLn 2, STRING046 + Upper(STRING016)
  1299.             FPutLn 2, STRING047 + STRING013
  1300.             Inc INTEGER064
  1301.             Goto LABEL039
  1302.         Endif
  1303.         :LABEL040
  1304.         If (BOOLEAN013) Log "nuv: comment entered", 0
  1305.         FClose 2
  1306.         AnsiPos INTEGER049, INTEGER050
  1307.         Print ReadLine(STRING011, 17)
  1308.         INTEGER055 = GetX()
  1309.     Endif
  1310.     :LABEL041
  1311.     For INTEGER022 = 1 To INTEGER052
  1312.         DefColor
  1313.         AnsiPos INTEGER053, INTEGER054 + INTEGER022 - 1
  1314.         Print TSTRING008(INTEGER022)
  1315.     Next
  1316.     Return
  1317.     :LABEL042
  1318.     FClose -1
  1319.     If (BOOLEAN014) Then
  1320.         Rename STRING039, PPEPath() + "APPS\IN\" + STRING041 + ".vot"
  1321.         Rename PPEPath() + "apps\" + STRING041 + ".cmt", PPEPath() + "APPS\IN\" + STRING041 + ".cmt"
  1322.     Else
  1323.         Rename STRING039, PPEPath() + "APPS\OUT\" + STRING041 + ".vot"
  1324.         Rename PPEPath() + "apps\" + STRING041 + ".cmt", PPEPath() + "APPS\OUT\" + STRING041 + ".cmt"
  1325.     Endif
  1326.     For INTEGER022 = 1 To INTEGER038
  1327.         If (Exist(PPEPath() + "apps\" + STRING041 + "." + String(INTEGER022))) Then
  1328.             If (BOOLEAN014) Then
  1329.                 Rename PPEPath() + "apps\" + STRING041 + "." + String(INTEGER022), PPEPath() + "apps\in\" + STRING041 + "." + String(INTEGER022)
  1330.                 Continue
  1331.             Endif
  1332.             Rename PPEPath() + "apps\" + STRING041 + "." + String(INTEGER022), PPEPath() + "apps\out\" + STRING041 + "." + String(INTEGER022)
  1333.         Endif
  1334.     Next
  1335.     Return
  1336.     :LABEL043
  1337.     DefColor
  1338.     GetUser
  1339.     If (BOOLEAN013) Log "User (" + Upper(STRING038) + ") selected for sysop voting", 0
  1340.     STRING041 = Replace(Left(STRING038, 8), " ", "_")
  1341.     STRING041 = Replace(STRING041, "=", "-")
  1342.     STRING041 = Replace(STRING041, ",", "-")
  1343.     STRING041 = Replace(STRING041, ".", "-")
  1344.     STRING039 = PPEPath() + "apps\" + Replace(Left(STRING038, 8), " ", "_")
  1345.     STRING039 = Replace(STRING039, "=", "-")
  1346.     STRING039 = Replace(STRING039, ",", "-")
  1347.     STRING039 = Replace(STRING039, ".", "-") + ".vot"
  1348.     If (U_Sec < SysopSec()) Then
  1349.         AnsiPos INTEGER049, INTEGER050
  1350.         Print ReadLine(STRING011, 18)
  1351.         INTEGER055 = GetX()
  1352.         Return
  1353.     Endif
  1354.     INTEGER012 = U_RecNum(Upper(STRING038))
  1355.     BOOLEAN001 = 0
  1356.     If (INTEGER012 == -1) Then
  1357.         If (BOOLEAN013) Log "nuv: user record number for " + STRING038 + " not found", 0
  1358.         Gosub LABEL048
  1359.         AnsiPos INTEGER049, INTEGER050
  1360.         Print ReadLine(STRING011, 28)
  1361.         INTEGER055 = GetX()
  1362.         Delay 40
  1363.         BOOLEAN001 = 1
  1364.         Gosub LABEL048
  1365.     Endif
  1366.     If (BOOLEAN001) Goto LABEL044
  1367.     GetAltUser INTEGER012
  1368.     If (U_Sec <> INTEGER013) Then
  1369.         If (BOOLEAN013) Log "nuv: new user security is incorrect (" + String(U_Sec) + " should be " + String(INTEGER013) + ")", 0
  1370.         Gosub LABEL048
  1371.         AnsiPos INTEGER049, INTEGER050
  1372.         Print ReadLine(STRING011, 27)
  1373.         INTEGER055 = GetX()
  1374.         Delay 40
  1375.         Gosub LABEL048
  1376.         BOOLEAN001 = 1
  1377.     Endif
  1378.     :LABEL044
  1379.     FOpen 1, STRING039, 2, 3
  1380.     If (Ferr(1)) Then
  1381.         Gosub LABEL048
  1382.         AnsiPos INTEGER049, INTEGER050
  1383.         Print "ERROR openinig vote file (already open?), try again later"
  1384.         INTEGER055 = GetX()
  1385.         GetUser
  1386.         Return
  1387.     Endif
  1388.     STRING015 = "A"
  1389.     AnsiPos INTEGER049, INTEGER050
  1390.     InputStr ReadLine(STRING011, 21), STRING015, 1, 1, "AIO", 8 + 2
  1391.     INTEGER055 = GetX() + 5
  1392.     Gosub LABEL048
  1393.     Select Case (STRING015)
  1394.         Case "", "A"
  1395.             FClose 1
  1396.         Case "I"
  1397.             If (BOOLEAN013) Log "nuv: user " + STRING016 + " voted IN by SYSOP", 0
  1398.             If (BOOLEAN001) Goto LABEL045
  1399.             U_Sec = INTEGER014
  1400.             PutUser
  1401.             :LABEL045
  1402.             Gosub LABEL031
  1403.             FSeek 1, 0, 0
  1404.             FPutLn 1, "SYSOP"
  1405.             FClose 1
  1406.             BOOLEAN014 = 1
  1407.             BOOLEAN016 = 1
  1408.             Gosub LABEL042
  1409.         Case "O"
  1410.             If (BOOLEAN013) Log "nuv: user " + STRING016 + " voted OUT by SYSOP", 0
  1411.             Gosub LABEL031
  1412.             If (BOOLEAN001) Goto LABEL047
  1413.             If (INTEGER060 == -1) Then
  1414.                 U_Sec = 0
  1415.                 DelUser
  1416.                 Goto LABEL046
  1417.             Endif
  1418.             If (INTEGER060 == -2) Then
  1419.                 Gosub LABEL049
  1420.                 U_Sec = 0
  1421.                 DelUser
  1422.                 Goto LABEL046
  1423.             Endif
  1424.             U_Sec = INTEGER060
  1425.             :LABEL046
  1426.             PutUser
  1427.             :LABEL047
  1428.             FSeek 1, 0, 0
  1429.             FPutLn 1, "SYSOP"
  1430.             FClose 1
  1431.             BOOLEAN014 = 0
  1432.             BOOLEAN017 = 1
  1433.             Gosub LABEL042
  1434.     End Select
  1435.     FClose 1
  1436.     GetUser
  1437.     Return
  1438.     Return
  1439.     :LABEL048
  1440.     DefColor
  1441.     AnsiPos INTEGER049, INTEGER050
  1442.     Print Space(INTEGER055 - INTEGER049 + 1)
  1443.     Return
  1444.     :LABEL049
  1445.     FClose -1
  1446.     STRING054 = PPEPath() + "work\nuvun" + String(PcbNode())
  1447.     STRING055 = PPEPath() + "unwanted"
  1448.     FOpen 3, STRING054, 1, 3
  1449.     FOpen 4, STRING055, 0, 0
  1450.     FPutLn 3, U_Name()
  1451.     While (1) Do
  1452.         FGet 4, STRING056
  1453.         If (Ferr(4)) Break
  1454.         FPutLn 3, STRING056
  1455.     EndWhile
  1456.     FClose 3
  1457.     FClose 4
  1458.     Delete STRING055
  1459.     Copy STRING054, STRING055
  1460.     Delete STRING054
  1461.     Return
  1462.     :LABEL050
  1463.     STRING057 = PPEPath() + "apply.vip"
  1464.     INTEGER065 = 1
  1465.     STRING058 = ReadLine(STRING057, INTEGER065)
  1466.     While (STRING058 <> "") Do
  1467.         If (Upper(U_Name()) == Upper(STRING058)) Then
  1468.             If (BOOLEAN013) Log "User found in VIP file, automatic validation", 0
  1469.             DispFile PPEPath() + "graph\nuvvip", 1 + 4
  1470.             Wait
  1471.             U_Sec = INTEGER014
  1472.             PutUser
  1473.             End
  1474.         Endif
  1475.         Inc INTEGER065
  1476.         STRING058 = ReadLine(STRING057, INTEGER065)
  1477.     EndWhile
  1478.     Return
  1479.     AnsiPos INTEGER049, INTEGER050
  1480.     STRING015 = Upper(YesChar())
  1481.     InputYN ReadLine(STRING011, 12), STRING015, 1
  1482.     INTEGER055 = GetX() + 2
  1483.     Gosub LABEL048
  1484.     Return
  1485.  
  1486. ;------------------------------------------------------------------------------
  1487. ;
  1488. ; Usage report (before postprocessing)
  1489. ;
  1490. ; ■ Statements used :
  1491. ;
  1492. ;    16      End
  1493. ;    6       Cls
  1494. ;    12      Wait
  1495. ;    2       Color 
  1496. ;    308     Goto 
  1497. ;    377     Let 
  1498. ;    59      Print 
  1499. ;    10      PrintLn 
  1500. ;    229     If 
  1501. ;    10      DispFile 
  1502. ;    7       FCreate 
  1503. ;    4       FOpen 
  1504. ;    2       FAppend 
  1505. ;    46      FClose 
  1506. ;    4       FGet 
  1507. ;    30      FPutLn 
  1508. ;    7       StartDisp 
  1509. ;    3       Hangup
  1510. ;    7       GetUser
  1511. ;    5       PutUser
  1512. ;    13      DefColor
  1513. ;    4       Delete 
  1514. ;    4       DelUser
  1515. ;    32      Log 
  1516. ;    1       InputStr 
  1517. ;    5       InputYN 
  1518. ;    52      Gosub 
  1519. ;    33      Return
  1520. ;    3       Delay 
  1521. ;    27      Inc 
  1522. ;    4       Dec 
  1523. ;    6       Newline
  1524. ;    5       Tokenize 
  1525. ;    1       InputText 
  1526. ;    71      AnsiPos 
  1527. ;    3       FreshLine
  1528. ;    3       SaveScrn
  1529. ;    3       RestScrn
  1530. ;    2       MPrint 
  1531. ;    6       Rename 
  1532. ;    9       FSeek 
  1533. ;    1       Redim 
  1534. ;    2       Copy 
  1535. ;    2       GetAltUser 
  1536. ;
  1537. ;
  1538. ; ■ Functions used :
  1539. ;
  1540. ;    27      -
  1541. ;    9       *
  1542. ;    12      %
  1543. ;    241     +
  1544. ;    52      -
  1545. ;    105     ==
  1546. ;    16      <>
  1547. ;    18      <
  1548. ;    17      <=
  1549. ;    9       >
  1550. ;    36      >=
  1551. ;    172     !
  1552. ;    31      &&
  1553. ;    28      ||
  1554. ;    1       Len(
  1555. ;    5       Lower()
  1556. ;    46      Upper()
  1557. ;    34      Left()
  1558. ;    5       Space()
  1559. ;    2       Ferr()
  1560. ;    4       Chr()
  1561. ;    7       Asc()
  1562. ;    4       Random()
  1563. ;    3       Time()
  1564. ;    4       U_Name()
  1565. ;    3       NoChar()
  1566. ;    10      YesChar()
  1567. ;    11      StripAtx()
  1568. ;    45      Replace()
  1569. ;    2       Inkey()
  1570. ;    46      String()
  1571. ;    1       PCBDat()
  1572. ;    46      PPEPath()
  1573. ;    4       PcbNode()
  1574. ;    95      ReadLine()
  1575. ;    1       SysopSec()
  1576. ;    46      GetToken()
  1577. ;    16      Exist()
  1578. ;    6       LangExt()
  1579. ;    1       AnsiOn()
  1580. ;    26      GetX()
  1581. ;    8       GetY()
  1582. ;    2       DefColor()
  1583. ;    2       LoggedOn()
  1584. ;    1       TokCount()
  1585. ;    2       U_RecNum()
  1586. ;    2       ScrText()
  1587. ;    18      ReplaceStr()
  1588. ;    1       ToInteger()
  1589. ;    14      Mixed()
  1590. ;
  1591. ;------------------------------------------------------------------------------
  1592. ;
  1593. ; Analysis flags : WRDBMds
  1594. ;
  1595. ; W - Write user ■ 5
  1596. ;     Program writes a user record. Although this may be normal for a
  1597. ;     User Editor, it may also be a way to modify an account level.
  1598. ;     ■ Search for : PUTUSER
  1599. ;
  1600. ; R - Read user ■ 5
  1601. ;     User records are read, this may signify that someone wants to get
  1602. ;     various informations about a user (for example his password), but
  1603. ;     this may also be normal for a program accessing user records (for
  1604. ;     example a User Editor)
  1605. ;     ■ Search for : GETALTUSER
  1606. ;
  1607. ; D - Delete user ■ 5
  1608. ;     Program is deleting account(s)... Check!
  1609. ;     ■ Search for : DELUSER
  1610. ;
  1611. ; B - Brute hangup ■ 1
  1612. ;     Program hangup without notification. This may be a good way to
  1613. ;     disconnect a user, but if used randomly, may be very nasty
  1614. ;     ■ Search for : HANGUP, DTROFF
  1615. ;
  1616. ; M - Send text to modem only ■ 4
  1617. ;     Some informations are sent only to the modem, not to the local
  1618. ;     screen, this is a well known way to make stealth backdoors, Check!
  1619. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  1620. ;
  1621. ; d - Access PCBOARD.DAT ■ 2
  1622. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  1623. ;     for many PPE so they can find various informations on the system
  1624. ;     (system paths, max number of lines in messages, ...) but it may also
  1625. ;     be a way to gather vital informations.
  1626. ;     ■ Search for : PCBDAT()
  1627. ;
  1628. ; s - Sysop level access ■ 5
  1629. ;     Program is reading the sysop access level, this may be normal
  1630. ;     but still it is very suspect. It is the best way to give a user
  1631. ;     all priviledges. Check!
  1632. ;     ■ Search for : SYSOPSEC()
  1633. ;
  1634. ;------------------------------------------------------------------------------
  1635. ;
  1636. ; Postprocessing report
  1637. ;
  1638. ;    14      For/Next
  1639. ;    8       While/EndWhile
  1640. ;    106     If/Then or If/Then/Else
  1641. ;    6       Select Case
  1642. ;
  1643. ;------------------------------------------------------------------------------
  1644. ;                 AEGiS Corp - Break the routines, code against the machines!
  1645. ;------------------------------------------------------------------------------
  1646.